<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
        //块作用域
        if(true)
        {
            var c=3;
        }
        //此时能查找到变量c和c的值，所以代表没有块作用域
        console.log(c);

        var a=10;
        var b=20;
        function fn(x)
        {
            
            var a=100;
            var c=300;
            console.log("fn()",a,b,c,x);
            function bar(x)
            {
                var a=1000;
                var d=400;
                console.log("bar()",a,b,c,d,x);
            }
            bar(100);
            bar(200);
        }
        //传递参数x=50，但是不影响fn(x)函数内的bar(x)函数的结果。即使是取消bar的两次传递参数，也不会被外部传递的x参数影响。
        fn(10);
    </script>
</head>
<body>
    <!--
        1.理解
        就是一块“底盘”，一个代码段所在的区域
        它是静态的（相对于上下文对象），在编写代码时就确定了
        2.分类
        全局作用域
        函数作用域
        没有块作用域（ES6有了）==>块作用域指大括号{}作用域
        3.作用
        隔离变量，不同作用域下同名变量不会有冲突
    -->
</body>
</html>